package com.yunxin.mybatisplus.controller;


import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.core.JsonProcessingException;

import com.yunxin.mybatisplus.bean.TestDataProcess;
import com.yunxin.mybatisplus.utils.datahandler.HttpResult;
import com.yunxin.mybatisplus.utils.datahandler.ResultCodeEnum;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * description: 测试统一接口
 *
 * @author sbx
 * @create 2024/8/5 14:53
 */
@RestController
public class TestController {

    /**
     * 测试成功
     *
     * @return
     */
    @GetMapping("/success")
    public HttpResult success() {
        return HttpResult.success("成功");
    }

    /**
     * 测试失败
     *
     * @return
     */
    @GetMapping("/failure")
    public HttpResult failure(){
        return HttpResult.failure(ResultCodeEnum.NOT_FOUND);
    }

    @GetMapping("/test1")
    public HttpResult test1() {
        TestDataProcess bean1 = new TestDataProcess()
                .setA1(BigDecimal.valueOf(1.11111))
                .setB1(BigDecimal.valueOf(2.222222))
                .setA2(2.222222)
                .setA3(3.333333d)
                .setA4(4.444444f)
                .setA5(5.555555f)
                .setA6(666666666666666666L)
                .setA7(777777777777777L)
                .setA8(DateUtil.date())
                .setA9(DateUtil.date());
//        return ResponseUtil.out(bean1);

        return HttpResult.success(bean1);
    }

    @GetMapping("/test2")
    public HttpResult test2() {
        TestDataProcess bean1 = new TestDataProcess()
                .setA1(BigDecimal.valueOf(1.11111))
                .setB1(BigDecimal.valueOf(2.222222))
                .setA2(2.222222)
                .setA3(3.333333d)
                .setA4(4.444444f)
                .setA5(5.555555f)
                .setA6(666666666666666666L)
                .setA7(777777777777777L)
                .setA8(DateUtil.date()).setA9(DateUtil.date());
        TestDataProcess bean2 = new TestDataProcess()
                .setA1(BigDecimal.valueOf(1.11111))
                .setB1(BigDecimal.valueOf(2.222222))
                .setA2(2.222222)
                .setA3(3.333333d)
                .setA4(4.444444f)
                .setA5(5.555555f)
                .setA6(666666666666666666L)
                .setA7(777777777777777L)
                .setA8(DateUtil.date()).setA9(DateUtil.date());
        List<TestDataProcess> list = new ArrayList<>();
        list.add(bean1);
        list.add(bean2);
//return ResponseUtil.out(list);
        return HttpResult.success(list);
    }

    @GetMapping("/test3")
    public HttpResult test3() throws JsonProcessingException {
        HashMap<String, Object> map = new HashMap<>();
        map.put("a1", BigDecimal.valueOf(1.11111));
        map.put("b1", BigDecimal.valueOf(2.222222));
        map.put("a2", new Double(2.222222));
        double a3 = 3.333333d;
        map.put("a3", a3);
        map.put("a4", new Float(4.444444f));
        float a5 = 5.555555f;
        map.put("a5", a5);
        map.put("a6", new Long(666666666666666666L));
        long a7 = 7777777777777777777L;
        map.put("a7", a7);
        map.put("a8", DateUtil.date());
        map.put("a9", DateUtil.date());

        return HttpResult.success(map);
//        return ResponseUtil.out(map);
    }

    @GetMapping("/test4")
    public HttpResult test4() {
        HashMap<String, Object> map = new HashMap<>();
        map.put("a1", BigDecimal.valueOf(1.11111));
        map.put("b1", BigDecimal.valueOf(2.222222));
        map.put("a2", new Double(2.222222));
        double a3 = 3.333333d;
        map.put("a3", a3);
        map.put("a4", new Float(4.444444f));
        float a5 = 5.555555f;
        map.put("a5", a5);
        map.put("a6", new Long(666666666666666666L));
        long a7 = 7777777777777777777L;
        map.put("a7", a7);
        map.put("a8", DateUtil.date());
        map.put("a9", DateUtil.date());
        ArrayList<HashMap<String, Object>> objects = new ArrayList<>();
        objects.add(map);
        objects.add(map);
//       return ResponseUtil.out(objects);
        return HttpResult.success(objects);
    }


}
